RHCA436-基于CentOS8pacemaker+corosync 集群资源管理

一、管理资源命令
1.列出资源
pcs resource list
pcs resource config [myweb]
2.查看资源帮助
pcs resource describe Filesystem
3.查看已经创建的资源
pcs status resources
pcs resource
pcs resource show myweb
4.创建资源,指定资源组
pcs resource create myfs Filesystem device=storage.san01.example.com:/myweb directory=/var/www/html fstype=nfs --group=mygroup
5.查看资源配置参数
pcs resource config
pcs resource show myfs
6.删除资源参数
pcs resource op remove myfs minotor
7.添加资源参数
pcs resource op add myfs monitor interval=10s timeout=20s
8.修改资源控制参数
pcs resource update myfs op monitor interval=10s timeout=20s on-fail=fence
测试:
[root@nodec ~]
on-fail=fence 卸载挂载点会被fence掉,fence的默认策略是reboot
9.添加资源到资源组
pcs resource group add mygroup myweb
pcs resource group add mygroup myip
10.从资源组中移除资源
pcs resource group remove mygroup myip
11.启动资源组中的资源
[root@nodea ~]
[root@nodea ~]
* Resource Group: mygroup:
* myfs (ocf::heartbeat:Filesystem): Started nodeb.private.example.com
* myip (ocf::heartbeat:IPaddr2): Started nodeb.private.example.com
* myweb (systemd:httpd): Starting nodeb.private.example.com
12.关闭资源组中的资源
[root@nodea ~]
[root@nodea ~]
* Resource Group: mygroup:
* myfs (ocf::heartbeat:Filesystem): Started nodeb.private.example.com
* myip (ocf::heartbeat:IPaddr2): Started nodeb.private.example.com
* myweb (systemd:httpd): Stopped (disabled)
pcs resource disable mygroup 停止资源组
pcs resource enable mygroup 启动资源组
13.清空资源报错信息
pcs resource cleanup
二、实验:创建文件系统资源,并加入资源组
1.在存储节点配置NFS共享存储
[root@storage ~]
[root@storage ~]
[root@storage ~]
/myweb *(rw)
[root@storage ~]
[root@storage ~]
[root@storage ~]
[root@storage ~]
[root@storage ~]
[root@storage ~]
2.创建文件系统资源
[root@nodea ~]
[root@nodea ~]
* Resource Group: mygroup:
* myfs (ocf::heartbeat:Filesystem): Started nodea.private.example.com
3.将资源移动到其他节点
pcs resource move myfs 将资源自动到其他任意节点,当前节点会变成负无穷
pcs resource move myfs nodec.private.example.com 将资源移动到nodec节点,nodec节点会变成正无穷
pcs resource ban myweb nodea.private.example.com 将某个节点设置为负无穷
查看限制规则:
[root@nodeb ~]
Location Constraints:
Resource: myfs
Enabled on:
Node: nodec.private.example.com (score:INFINITY) (role:Started)
Disabled on:
Node: nodea.private.example.com (score:-INFINITY) (role:Started)
Ordering Constraints:
Colocation Constraints:
Ticket Constraints:
清除规则:
pcs resource clear myfs
说明:如果nodec故障,则会自动移动到nodeb节点,处于负无穷状态的节点是不会运行该资源的,即使没有其他节点可以使用,如果只有处于负无穷状态的主机存活,那么该资源会停止运行。
三、资源操作参数,修改参数可以对资源进行调优
[root@nodea ~]
[root@nodea ~]
[root@nodea ~]
[root@nodea ~]
Group: mygroup
Resource: myfs (class=ocf provider=heartbeat type=Filesystem)
Attributes: device=storage.san01.example.com:/myweb directory=/var/www/html fstype=nfs
Operations: monitor interval=10s on-fail=fence timeout=20s (myfs-monitor-interval-10s)
start interval=0s timeout=60s (myfs-start-interval-0s)
stop interval=0s timeout=60s (myfs-stop-interval-0s)
1.name=value,value等于start,stop或者monitor
start:启动时的配置
stop:停止时的配置
2.interval=value,资源检测的间隔时间,默认是60s
3.timeout=value,检测到资源故障时的等待时间,超时后如果没有恢复再处理
4.on-fail=action,action等于ignore,block,stop,restart,fence,standby
ignore:忽略故障,资源不做任何处理,仍然显示正常启动,手动恢复故障后,资源依然可用
* myweb (systemd:httpd): Started nodea.private.example.com
block:如果集群没有配置fence,那么资源会停止
* myweb (systemd:httpd): FAILED nodea.private.example.com (blocked)
stop:停止该节点的资源,资源组不会切换,手动恢复服务后,资源仍然不会运行
* myweb (systemd:httpd): Stopped
pcs resource refresh 会重新启动该资源
restart:重启该节点的服务,尝试在该节点恢复,这是默认策略,如果不能恢复,则资源组会切换
systemctl mask httpd; systemctl stop httpd
说明:演示服务无法恢复的场景,资源组会切换
fence:如果节点故障,并且配置了fence,则会按照fence的策略执行重启节点,则资源组会切换到其他节点
standby:让节点进入standby模式。这个模式下的节点可以继续运行corosync和pacemaker但是无法运行资源。任何原本在此节点激活的资源都会被转移。这个特性在执行系统管理任务比如更新资源所需的packages时会非常有用。
四、实验一、添加ip,文件系统和http服务,并加入资源组
1.共享存储已经配置好
2.在所有节点安装http软件包
yum -y install httpd
说明:不需要启动服务,也不需要设置开机自启
3.在所有节点放行http服务
firewall-cmd --permanent --add-service=http
firewall-cmd --reload
4.在所有节点设置selinux
setsebool -P httpd_use_nfs=1
5.创建文件系统,ip和http资源
1.创建文件系统
pcs resource create myfs Filesystem device=storage.san01.example.com:/myweb directory=/var/www/html fstype=nfs --group=mygroup
2.创建ip
pcs resource create myip IPaddr2 ip=172.25.250.99 cidr_netmask=24 --group mygroup
3.创建http服务
pcs resource create myweb systemd:httpd --group=mygroup
4.查看集群状态
[root@nodea ~]
* Resource Group: mygroup:
* myfs (ocf::heartbeat:Filesystem): Started nodec.private.example.com
* myip (ocf::heartbeat:IPaddr2): Started nodec.private.example.com
* myweb (systemd:httpd): Started nodec.private.example.com
5.测试
curl 172.25.250.99
[root@nodec ~]
[root@nodec ~]
五、控制资源迁移
1.查看限制规则:
[root@nodeb ~]
Location Constraints:
Resource: myfs
Enabled on:
Node: nodec.private.example.com (score:INFINITY) (role:Started)
Disabled on:
Node: nodea.private.example.com (score:-INFINITY) (role:Started)
Ordering Constraints:
Colocation Constraints:
Ticket Constraints:
INFINITY:正无穷,更倾向于运行在该节点
-INFINITY:负无穷,不会运行在该节点,即使没有节点可以运行
2.手动移动集群资源
pcs resource move myfs 将资源自动到其他任意节点,当前节点会变成负无穷
pcs resource move myfs nodec.private.example.com 将资源移动到nodec节点,nodec节点会变成正无穷
pcs resource clear myfs
pcs constraint location myweb prefers nodea.private.example.com 将某个节点设置为正无穷
pcs constraint location myweb avoids nodec.private.example.com 将某个节点设置为负无穷
pcs constraint location delete location-myftp-nodec.private.example.com-INFINITY
3.管理节点的优先级
1.设置优先级,数值越大优先级越高
pcs constraint location myweb prefers nodea.private.example.com=200
pcs constraint location myweb prefers nodeb.private.example.com=500
[root@nodea ~]
* Resource Group: mygroup:
* myfs (ocf::heartbeat:Filesystem): Started nodeb.private.example.com
* myip (ocf::heartbeat:IPaddr2): Started nodeb.private.example.com
* myweb (systemd:httpd): Started nodeb.private.example.com
2.查看规则,--full可以查看规则的id
[root@nodea ~]
Location Constraints:
Resource: myftp
Enabled on:
Node: nodec.private.example.com (score:INFINITY) (id:location-myftp-nodec.private.example.com-INFINITY)
Resource: myweb
Enabled on:
Node: nodea.private.example.com (score:200) (id:location-myweb-nodea.private.example.com-200)
Node: nodeb.private.example.com (score:500) (id:location-myweb-nodeb.private.example.com-500)
Disabled on:
Node: nodec.private.example.com (score:-INFINITY) (id:location-myweb-nodec.private.example.com--INFINITY)
Ordering Constraints:
Colocation Constraints:
Ticket Constraints:
3.删除优先级
pcs constraint delete 规则id
pcs constraint delete location-myweb-nodea.private.example.com-200
pcs constraint delete location-myweb-nodeb.private.example.com-500
六、实验:添加另一组资源ip,文件系统和ftp服务,并加入资源组
1.存储端
mkdir /ftp
chmod 777
cat /etc/exports
/ftp *(rw)
systemctl restart nfs-server
2.集群
yum -y install vsftpd
firewall-cmd --permanent --add-service=ftp
firewall-cmd --reload
setsebool -P ftpd_use_nfs=1
pcs resource create myftpfs Filesystem device=storage.san01.example.com:/ftp directory=/var/ftp/pub fstype=nfs --group=myftp
pcs resource create myftpip IPaddr2 ip=172.25.250.100 cidr_netmask=24 --group myftp
pcs resource create myftpservice systemd:vsftpd --group=myftp
3.查看集群状态
[root@nodea pub]
* Resource Group: mygroup:
* myfs (ocf::heartbeat:Filesystem): Started nodea.private.example.com
* myip (ocf::heartbeat:IPaddr2): Started nodea.private.example.com
* myweb (systemd:httpd): Started nodea.private.example.com
* Resource Group: myftp:
* myftpfs (ocf::heartbeat:Filesystem): Started nodeb.private.example.com
* myftpip (ocf::heartbeat:IPaddr2): Started nodeb.private.example.com
* myftpservice (systemd:vsftpd): Started nodeb.private.example.com
4.一个集群运行两个资源组
资源组nygroup优先运行在nodea上
资源组myftp 优先运行在nodec上
[root@nodea pub]
[root@nodea pub]
Location Constraints:
Resource: myftp
Enabled on:
Node: nodec.private.example.com (score:INFINITY)
Resource: myweb
Enabled on:
Node: nodea.private.example.com (score:INFINITY)
Disabled on:
Node: nodec.private.example.com (score:-INFINITY)
Ordering Constraints:
Colocation Constraints:
Ticket Constraints:
[root@nodea pub]
* Resource Group: mygroup:
* myfs (ocf::heartbeat:Filesystem): Started nodea.private.example.com
* myip (ocf::heartbeat:IPaddr2): Started nodea.private.example.com
* myweb (systemd:httpd): Started nodea.private.example.com
* Resource Group: myftp:
* myftpfs (ocf::heartbeat:Filesystem): Started nodec.private.example.com
* myftpip (ocf::heartbeat:IPaddr2): Started nodec.private.example.com
* myftpservice (systemd:vsftpd): Started nodec.private.example.com